package com.example.icongyou.bean;

import com.google.gson.annotations.SerializedName;
import java.util.List;

public class TeamDashboardBean {
    @SerializedName("teamId")
    private Long teamId;

    @SerializedName("teamName")
    private String teamName;

    @SerializedName("teamScore")
    private Double teamScore;

    @SerializedName("teamRanking")
    private Integer teamRanking;

    @SerializedName("totalMembers")
    private Integer totalMembers;

    @SerializedName("completedAssignments")
    private Integer completedAssignments;

    @SerializedName("contributions")
    private List<ContributionItem> contributions;

    @SerializedName("teamProgress")
    private ProgressInfo teamProgress;

    // Getter和Setter方法
    public Long getTeamId() { return teamId; }
    public void setTeamId(Long teamId) { this.teamId = teamId; }

    public String getTeamName() { return teamName; }
    public void setTeamName(String teamName) { this.teamName = teamName; }

    public Double getTeamScore() { return teamScore; }
    public void setTeamScore(Double teamScore) { this.teamScore = teamScore; }

    public Integer getTeamRanking() { return teamRanking; }
    public void setTeamRanking(Integer teamRanking) { this.teamRanking = teamRanking; }

    public Integer getTotalMembers() { return totalMembers; }
    public void setTotalMembers(Integer totalMembers) { this.totalMembers = totalMembers; }

    public Integer getCompletedAssignments() { return completedAssignments; }
    public void setCompletedAssignments(Integer completedAssignments) { this.completedAssignments = completedAssignments; }

    public List<ContributionItem> getContributions() { return contributions; }
    public void setContributions(List<ContributionItem> contributions) { this.contributions = contributions; }

    public ProgressInfo getTeamProgress() { return teamProgress; }
    public void setTeamProgress(ProgressInfo teamProgress) { this.teamProgress = teamProgress; }

    // 内部类：成员贡献项
    public static class ContributionItem {
        @SerializedName("studentId")
        private Long studentId;

        @SerializedName("studentName")
        private String studentName;

        @SerializedName("role")
        private String role;

        @SerializedName("contributionRate")
        private Double contributionRate;

        @SerializedName("completedTasks")
        private Integer completedTasks;

        @SerializedName("personalScore")
        private Double personalScore;

        // Getter和Setter方法
        public Long getStudentId() { return studentId; }
        public void setStudentId(Long studentId) { this.studentId = studentId; }

        public String getStudentName() { return studentName; }
        public void setStudentName(String studentName) { this.studentName = studentName; }

        public String getRole() { return role; }
        public void setRole(String role) { this.role = role; }

        public Double getContributionRate() { return contributionRate; }
        public void setContributionRate(Double contributionRate) { this.contributionRate = contributionRate; }

        public Integer getCompletedTasks() { return completedTasks; }
        public void setCompletedTasks(Integer completedTasks) { this.completedTasks = completedTasks; }

        public Double getPersonalScore() { return personalScore; }
        public void setPersonalScore(Double personalScore) { this.personalScore = personalScore; }
    }

    // 内部类：团队进度信息
    public static class ProgressInfo {
        @SerializedName("totalAssignments")
        private Integer totalAssignments;

        @SerializedName("completedAssignments")
        private Integer completedAssignments;

        @SerializedName("completionRate")
        private Double completionRate;

        // Getter和Setter方法
        public Integer getTotalAssignments() { return totalAssignments; }
        public void setTotalAssignments(Integer totalAssignments) { this.totalAssignments = totalAssignments; }

        public Integer getCompletedAssignments() { return completedAssignments; }
        public void setCompletedAssignments(Integer completedAssignments) { this.completedAssignments = completedAssignments; }

        public Double getCompletionRate() { return completionRate; }
        public void setCompletionRate(Double completionRate) { this.completionRate = completionRate; }
    }
}